
layui.use(function(){
    var form = layui.form;
    var layer = layui.layer;
    // checkbox 开关事件
    //自定义角色名称开关
    form.on('switch(switchModelRoleIsOpenSet)', function(data){
        var elem = data.elem; // 获得 checkbox 原始 DOM 对象
        //var checked = elem.checked; // 获得 checkbox 选中状态
        //var value = elem.value; // 获得 checkbox 值
        //var othis = data.othis; // 获得 checkbox 元素被替换后的 jQuery 对象
        //layer.msg('checked 状态: '+ elem.checked);
        if(elem.checked){//开
            eKnowSceneInfo.modelRoleIsOpen = 1;
        }else {//关
            eKnowSceneInfo.modelRoleIsOpen = 0;
        }

        //重新设置ai角色名相关
        reSetUserModelName();

    });
    //是否限制用户每天对话次数开关
    form.on('switch(switchIsLimitTimesSet)', function(data){
        var elem = data.elem;
        if(elem.checked){//开
            eKnowSceneInfo.isLimitTimes = 1;
            $('#userChatTimesView').show();
        }else {//关
            eKnowSceneInfo.isLimitTimes = 0;
            $('#userChatTimesView').hide();
        }
        //重新设置次数限制
        $('#userChatTimes').val(eKnowSceneInfo.userChatTimes);//用户每日问答次数限制
        $('#userChatOverPrompt').val(eKnowSceneInfo.userChatOverPrompt);//用户到达次数限制时的提示文案
    });
    //开启聊天是否默认新会话开关
    form.on('switch(switchOpenIsNewChatSet)', function(data){
        var elem = data.elem;
        if(elem.checked){//开
            eKnowSceneInfo.openIsNewChat = 1;
        }else {//关
            eKnowSceneInfo.openIsNewChat = 0;
        }

    });
    //问题模版是否开启（0否，1是）
    form.on('switch(switchQuestionTemplateIsOpenSet)', function(data){
        var elem = data.elem;
        if(elem.checked){//开
            eKnowSceneInfo.questionTemplateIsOpen = 1;
            $('#questionTemplateView').show();
            $('#questionTemplateIsOpen').show();
            $('#questionTemplateTxtSet').val(eKnowSceneInfo.questionTemplateTxt);
            $("#questionTemplateTxt").text(eKnowSceneInfo.questionTemplateTxt);
        }else {//关
            eKnowSceneInfo.questionTemplateIsOpen = 0;
            $('#questionTemplateView').hide();
            $('#questionTemplateIsOpen').hide();
        }

    });

});
//重新设置ai角色名相关
function reSetUserModelName(){
    //重新设置ai角色名相关
    var mdelDefaultName = eKnowSceneInfo.modelDefaultName==null?'':eKnowSceneInfo.modelDefaultName;//AI默认角色名
    if(eKnowSceneInfo.modelRoleIsOpen=='1'){//用户自定义AI角色名是否开启（0关闭，1开启）
        $('#modelRoleIsOpen').show();
        $('#modelRoleTxt').text(eKnowSceneInfo.modelRoleTxt==null?'':eKnowSceneInfo.modelRoleTxt);//用户自定义AI角色名选项的文案
        //用户是否有自定义角色名
        mdelDefaultName = eKnowSceneInfo.userSetAiName==null||eKnowSceneInfo.userSetAiName==''?mdelDefaultName:eKnowSceneInfo.userSetAiName;
        $('#userSetAiName').val(mdelDefaultName);
    }else {
        $('#modelRoleIsOpen').hide();
        $('#mdelDefaultName').val(mdelDefaultName);
    }
    $('#modelRoleIsOpenVal').val(eKnowSceneInfo.modelRoleIsOpen);
}
//默认角色名输入框
$("#modelDefaultNameSet").change(function(){
    eKnowSceneInfo.modelDefaultName = $("#modelDefaultNameSet").val();
    reSetUserModelName();
});
//AI人设
$("#aiSystemSet").change(function(){
    eKnowSceneInfo.aiSystem = $("#aiSystemSet").val();
});
//开场白设置
$("#prologueSet").change(function(){
    eKnowSceneInfo.prologue = $("#prologueSet").val();
});
//发送开场白
function sendOneStartTxt(){
    var prologue = $("#prologueSet").val();
    if(prologue==null || prologue==''){
        layer.msg('请填写开场白', {icon: 0});
        return ;
    }
    var sendMsg = prologue;
    if(prologue!='' && prologue.indexOf("*")!=-1){
        var mdelDefaultName = $("#modelDefaultNameSet").val();
        if(eKnowSceneInfo.modelRoleIsOpen=='1'){//用户自定义AI角色名是否开启（0关闭，1开启）
            //用户是否有自定义角色名
            mdelDefaultName = $('#userSetAiName').val();
        }
        sendMsg = prologue.replace("*",mdelDefaultName);
    }
    sendOneAiMsg(sendMsg);
}

//模型无法回答时的提示语
$("#sorryTxtSet").change(function(){
    eKnowSceneInfo.sorryTxt = $("#sorryTxtSet").val();
});
//次数限制
$("#userChatTimesSet").change(function(){
    eKnowSceneInfo.userChatTimes = $("#userChatTimesSet").val();
    //重新设置次数限制
    $('#userChatTimes').val(eKnowSceneInfo.userChatTimes);//用户每日问答次数限制
    $('#userChatOverPrompt').val(eKnowSceneInfo.userChatOverPrompt);//用户到达次数限制时的提示文案
});

//提问字数限制
$("#inputMaxSet").change(function(){
    eKnowSceneInfo.inputMax = $("#inputMaxSet").val();
    $("#inputPrompt").attr("maxlength",eKnowSceneInfo.inputMax==null?0:eKnowSceneInfo.inputMax);//输入框字数限制
    $("#inputMax").val(eKnowSceneInfo.inputMax==null||eKnowSceneInfo.inputMax==''?0:eKnowSceneInfo.inputMax);//输入框输入字数限制（0-1000）
    $("#inputMaxTxt").text(eKnowSceneInfo.inputMax==null||eKnowSceneInfo.inputMax==''?0:eKnowSceneInfo.inputMax);
});

//提示词模版文案
$("#questionTemplateTxtSet").change(function(){
    eKnowSceneInfo.questionTemplateTxt = $("#questionTemplateTxtSet").val();
    //重新设置提示词模版文案
    $('#questionTemplateTxt').text(eKnowSceneInfo.questionTemplateTxt);//提示词模版文案
});

//发送模型无法回答时的提示语
function sendOneSorryTxt(){
    var sendMsg = $("#sorryTxtSet").val();
    if(sendMsg==null || sendMsg==''){
        layer.msg('请填写模型无法回答时的提示语', {icon: 0});
        return ;
    }
    if(sendMsg!='' && sendMsg.indexOf("*")!=-1){
        var mdelDefaultName = $("#modelDefaultNameSet").val();
        if(eKnowSceneInfo.modelRoleIsOpen=='1'){//用户自定义AI角色名是否开启（0关闭，1开启）
            //用户是否有自定义角色名
            mdelDefaultName = $('#userSetAiName').val();
        }
        sendMsg = sendMsg.replace("*",mdelDefaultName);
    }
    sendOneAiMsg(sendMsg);
}

//聊天页面ai发送一条信息
function sendOneAiMsg(sendMsg) {
    //动画
    var animStr = 'layui-anim-upbit';
    var aiTalkHtml = '<div class="layui-row ai-chat">\n' +
        '            <div class="layui-col-xs1"><div class="grid-demo grid-demo-bg1 layui-anim '+animStr+'">' +headTypeHtml+ '</div></div>\n' +
        '            <div class="layui-col-xs10"><div class="ai-content layui-anim '+animStr+'"><span>'+sendMsg+'</span></div></div>\n' +
        '            <div class="layui-col-xs1" style="width: 100%;"></div>\n' +
        '        </div>';
    $('#chat_view').append(aiTalkHtml);
}

//设置向量数据库调用个数、置信度进度条
function sliderSet(embeddingBackCount,embeddingBackSource){
    //进度条配置
    layui.use(function(){
        var dropdown = layui.dropdown;
        var layer = layui.layer;
        var util = layui.util;
        var $ = layui.$;
        var slider = layui.slider;
        slider.render({
            elem: '#ID-slider-demo-step-1',
            theme: '#1E9FFF', // 主题色
            step: 1, // 步长
            min: 1, // 最小值
            max: 15, // 最大值
            value: embeddingBackCount, //初始值
            done: function(value){
                console.log(value); // 滑块当前值
                $('#embeddingBackCount').val(value);
                eKnowSceneInfo.embeddingBackCount = value;
                // do something
            }
        });
        slider.render({
            elem: '#ID-slider-demo-step-2',
            step: 1, // 步长
            min: 0, // 最小值
            max: 100, // 最大值
            value: embeddingBackSource*100, //初始值
            setTips: function(value){ // 自定义提示文本
                return value + '%';
            },
            done: function(value){
                console.log(value); // 滑块当前值
                // do something
                $('#embeddingBackSource').val(parseFloat(value)/100);
                eKnowSceneInfo.embeddingBackSource = parseFloat(value)/100;
            }
        });

    });
}


//预览按钮
function saveToTest() {
    //参数验证
    checkSaveSet();
    layer.load(2);
    var mdelDefaultName = $("#modelDefaultNameSet").val();
    if(eKnowSceneInfo.modelRoleIsOpen=='1'){//用户自定义AI角色名是否开启（0关闭，1开启）
        //用户是否有自定义角色名
        mdelDefaultName = $('#userSetAiName').val();
    }
    //配置中间聊天页面信息
    setChatView(eKnowSceneInfo,mdelDefaultName,chooseAiModelList);
    layer.closeAll();
}
